#ifndef __MYSQLOP_H__
#define __MYSQLOP_H__
#include <mysql/mysql.h>
#define SALT_LEN 12
#define USR_LEN 20
#define CRYPT_LEN 25
#define SQL_QUERY(mysql, sql)                                    \
    {                                                            \
        if (mysql_query(mysql, sql) != 0)                        \
        {                                                        \
            printf("mysql query failed:%s\n", mysql_error(mysql)); \
            mysql_close(mysql);                                  \
            return -1;                                           \
        }                                                        \
    }

typedef struct usrdata_s {
    int id;
    char usrname[USR_LEN+1];
    char salt[SALT_LEN+1];
    char crptpasswd[CRYPT_LEN+1];
    char pwd[512];
    int pwdid;
} usrdata_t;

typedef struct file_s {
    int id;     //文件名主键
    int parent_id; //父目录id
    char filename[256];
    int owner_id;
    char md5[45];
    int fileSize;
    char type;
}file_t;

typedef struct event_s {
    MYSQL * mysql;
    int netFd;
    usrdata_t * usrdata;
} event_t;

int generatesalt(char *salt);                           //产生盐值
int sql_init(MYSQL **mysql,char *passwd);                //数据库初始化
int start(event_t * evt);                             //开始界面
int sign_up(event_t * evt);                            //用户注册
int sign_in(event_t * evt);                            //用户登录
int search_usr(event_t * evt, usrdata_t * usr, char * usrname);        //获取用户信息
int search_file(event_t * evt, file_t * file, char * filename);         //获取文件信息
int insert_file(event_t * evt,file_t *file);         //用户插入文件
int checkmd5(char * filename, char *md);              //检查文件一致性
int datebase_copy(char *path);                       //
int getusrdata(event_t * evt);                        //获取对应用户的信息
#endif